<?php
namespace app\api\controller\v1;

use app\api\validate\AddressNew;
use app\api\model\User as UserModel;
use app\api\service\Token as TokenService;
use app\lib\exception\UserException;
use app\lib\exception\SuccessMessage;
use app\lib\enum\ScopeEnum;
use app\lib\exception\ForbiddenException;

class Address extends BaseController{
    //前置方法
    protected $beforeActionList = [
        'checkPrimaryScope' => ['only' => 'createOrUpdateAddress']
    ];

    public function createOrUpdateAddress(){
        $validate = new AddressNew();
        $validate->goCheck();
        //根据token来获取uid
        //根据uid来查找用户数据，判断用户是否存在，如果不存在抛出异常
        //获取用户从客户端提交来的地址信息
        //根据用户地址信息是否存在，从而判断时添加还是更新地址
        $uid = TokenService::getCurrentUid();
        $user = UserModel::get($uid);
        if(empty($user)){
            throw new UserException();
        };
        $dataArray = $validate->getDataByRule(input('post.'));
        $userAddress = $user->address;
        if(!$userAddress){
            $user->address()->save($dataArray); //新增
        }else{
            $user->address->save($dataArray);  //更新
        };
        return new SuccessMessage();
    }
}


?>